﻿//using System;
//using System.Collections.Generic;

//namespace mvcForum.Core.Interfaces.DependencyManagement {

//    public interface IDIContainer {
//        void Register<TService, TImplementation>() where TImplementation : TService;
//        //void Register<TService, TImplementation>(String named) where TImplementation : TService;
//        //void Register(Type service, Type implementation);
//        //void Register(Type service, Type implementation, String named);
//        void RegisterGeneric(Type service, Type implementation);
//        void RegisterGenericPerRequest(Type service, Type implementation);
//        //void RegisterGeneric(Type service, Type implementation, string named);
//        void RegisterSingleton<TService>(TService instance);
//        void RegisterSingleton<TService, TImplementation>() where TImplementation : TService;
//        //void RegisterSingleton<TService, TImplementation>(String named) where TImplementation : TService;
//        //void RegisterSingleton(Type service, Type implementation);
//        //void RegisterSingleton(Type service, Type implementation, String named);
//        //void RegisterInstance<TService>(TService instance) where TService : class;
//        //void RegisterInstance<TService>(TService instance, String named) where TService : class;
//        //void RegisterInstance(Type service, Object instance);
//        //void RegisterInstance(Type service, Object instance, String named);
//        void RegisterPerRequest<TService, TImplementation>() where TImplementation : TService;
//        void RegisterPerRequest<TService, TImplementation>(IDictionary<String, Object> constructorParameters) where TImplementation : TService;
//        void Register<TService, TImplementation>(IDictionary<String, Object> constructorParameters) where TImplementation : TService;
//        void UnRegister<TService>();

//        void Configure();
//    }
//}